﻿// SKNotes - a note taking and gathering tool
// Copyright (C) 2009  Stefan Kueng
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

namespace SKNotes
{
    using System.Windows.Input;

    public class Commands
    {
        static Commands()
        {
            SelectTag = new RoutedUICommand(
                "Select Tag",
                "SelectTag",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.F3, ModifierKeys.None, "F3") }));

            StartEdit = new RoutedUICommand(
                "Edit",
                "StartEdit",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.F2, ModifierKeys.None, "F2") }));

            DeleteNote = new RoutedUICommand(
                "Delete",
                "DeleteNote",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.Delete, ModifierKeys.None, "Delete") }));

            NewNote = new RoutedUICommand(
                "New Note",
                "NewNote",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.Insert, ModifierKeys.None, "Insert"), new KeyGesture(Key.N, ModifierKeys.Control | ModifierKeys.Shift, "Ctrl-Shift-N") }));

            NewSavedSearch = new RoutedUICommand(
                "New Saved Search",
                "NewSavedSearch",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.N, ModifierKeys.Control | ModifierKeys.Shift, "Ctrl-Shift-S") }));

            EditSavedSearch = new RoutedUICommand(
                "Edit Saved Search",
                "EditSavedSearch",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { }));

            NewTag = new RoutedUICommand(
                "New Tag",
                "NewTag",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.Insert, ModifierKeys.None, "Insert") }));

            DeleteTag = new RoutedUICommand(
                "Delete",
                "DeleteTag",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.Delete, ModifierKeys.None, "Delete") }));

            RenameTag = new RoutedUICommand(
                "Rename",
                "RenameTag",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.F2, ModifierKeys.None, "F2") }));

            EmptyTrash = new RoutedUICommand(
                "Empty Trash",
                "EmptyTrash",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.Delete, ModifierKeys.None, "Delete") }));

            NewNotebook = new RoutedUICommand(
                "New Notebook",
                "NewNotebook",
                typeof(Commands));

            DeleteAttachment = new RoutedUICommand(
                "Delete Attachment",
                "DeleteAttachment",
                typeof(Commands),
                new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.Delete, ModifierKeys.None, "Delete") }));

            OpenAttachment = new RoutedUICommand(
                "Open Attachment",
                "OpenAttachment",
                typeof(Commands));

            SaveAttachment = new RoutedUICommand(
                "Save Attachment",
                "SaveAttachment",
                typeof(Commands));
        }

        public static RoutedUICommand SelectTag { get; private set; }

        public static RoutedUICommand StartEdit { get; private set; }

        public static RoutedUICommand DeleteNote { get; private set; }

        public static RoutedUICommand NewNote { get; private set; }

        public static RoutedUICommand NewSavedSearch { get; private set; }

        public static RoutedUICommand EditSavedSearch { get; private set; }

        public static RoutedUICommand NewTag { get; private set; }

        public static RoutedUICommand DeleteTag { get; private set; }

        public static RoutedUICommand RenameTag { get; private set; }

        public static RoutedUICommand EmptyTrash { get; private set; }

        public static RoutedUICommand NewNotebook { get; private set; }

        public static RoutedUICommand DeleteAttachment { get; private set; }

        public static RoutedUICommand OpenAttachment { get; private set; }

        public static RoutedUICommand SaveAttachment { get; private set; }
    }
}
